﻿using System.Collections;
using System.Collections.Generic;


namespace Microsoft.Office.PowerPoint.STAMP.Core
{
    /// <summary>
    /// CaptionItemsList contain a list of Caption Items
    /// </summary>
    public class CaptionItemsList //: BusinessObject
    {
        /// <summary>
        /// Gets or sets id associated with captions.
        /// </summary>
        public string Id { get; set; }

        /// <summary>
        /// Gets or sets list of caption itmes associated with captions class.
        /// </summary>
        public List<CaptionItem> CaptionItems { get; set; }

        public static CaptionItemsList Empty = new CaptionItemsList() { CaptionItems = new List<CaptionItem>() };
    }

    /// <summary>
    /// Class that holds the caption information internally
    /// </summary>
    public class CaptionItem//: BusinessObject
    {
        /// <summary>
        /// Gets or sets internale id associated with closed item.
        /// </summary>
        public string InternalId { get; set; }

        /// <summary>
        /// Gets or sets name associated with closed item.
        /// </summary>
        public string Name { get; set; }

        /// <summary>
        /// Gets or sets text associated with closed item.
        /// </summary>
        public string Text { get; set; }

        /// <summary>
        /// Gets or sets bookmark entry name associated with closed item.
        /// </summary>
        public string BookMarkEntryName { get; set; }

        /// <summary>
        /// Gets or sets bookmark exit name associated with closed item.
        /// </summary>
        public string BookMarkExitName { get; set; }

        /// <summary>
        /// Gets or sets bookmark entry position associated with closed item.
        /// </summary>
        public int BookMarkEntryPosition { get; set; }

        /// <summary>
        /// Gets or sets bookmark exit position associated with closed item.
        /// </summary>
        public int BookMarkExitPosition { get; set; }

        internal bool IsNew { get; set; }
        internal bool IsDirty { get; set; }
        internal bool IsDirtyCaptionText { get; set; }
        internal bool IsDirtyStartTime { get; set; }
        internal bool IsDirtyEndTime { get; set; }

        internal bool IsCaptionDisplayArea { get; set; }
        internal CaptionStyle CaptionStyle { get; set; }
    }
}
